package com.example.activiti.listener;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Mr.yuan
 * @version v1.0
 * @date 2019/11/5 14:29
 * 请假监听器，将需要会签的人员都写在description中了，以json格式保存
 **/
public class LeaveListener implements TaskListener {

    @Override
    public void notify(DelegateTask delegateTask) {
        //添加会签的人员，这里可以根据自己的业务逻辑去动态获取列表,也可以直接写死
        String des = delegateTask.getDescription();
        if (StringUtils.isNotBlank(des)) {
            JSONObject object = JSONObject.parseObject(des);
            JSONArray array = object.getJSONArray("loginName");
            if (!array.isEmpty()) {
                List<String> list = new ArrayList<>();
                for (Object user : array) {
                    list.add(user.toString());
                }
                delegateTask.setVariable("assigneeList", list);
            }

        }
    }
}
